Skip to content

Fix TableModel validator to accept pandas StringDtype#1063

Merged
LucaMarconato merged 8 commits intoscverse:mainfrom
jlr13:fix-stringdtype-validation
Feb 17, 2026
Merged

Fix TableModel validator to accept pandas StringDtype#1063
LucaMarconato merged 8 commits intoscverse:mainfrom
jlr13:fix-stringdtype-validation

Conversation

@jlr13
Copy link
Contributor

@jlr13 jlr13 commented Feb 5, 2026

The TableModel validator now properly accepts modern pandas StringDtype for instance_key columns, along with CategoricalDtype with string categories.

This fixes #1062 where the validator incorrectly rejected StringDtype columns, forcing users to use deprecated object dtypes. The new validation logic:

  • Explicitly checks for pd.StringDtype instances
  • Accepts pd.CategoricalDtype with string categories
  • Maintains backward compatibility with integer and object dtypes
  • Provides clearer error messages

🤖 Generated with Claude Code

Jan Lukas Rinker and others added 2 commits February 5, 2026 14:39
The TableModel validator now properly accepts modern pandas StringDtype
for instance_key columns, along with CategoricalDtype with string categories.

This fixes scverse#1062 where the validator incorrectly rejected StringDtype columns,
forcing users to use deprecated object dtypes. The new validation logic:
- Explicitly checks for pd.StringDtype instances
- Accepts pd.CategoricalDtype with string categories
- Maintains backward compatibility with integer and object dtypes
- Provides clearer error messages

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@codecov
Copy link

codecov bot commented Feb 5, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 91.94%. Comparing base (3d9dee3) to head (cee88e1).
⚠️ Report is 2 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1063   +/-   ##
=======================================
  Coverage   91.93%   91.94%           
=======================================
  Files          51       51           
  Lines        7664     7673    +9     
=======================================
+ Hits         7046     7055    +9     
  Misses        618      618           
Files with missing lines Coverage Δ
src/spatialdata/models/models.py 88.61% <100.00%> (+0.18%) ⬆️
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@LucaMarconato
Copy link
Member

I though of closing in favor of work being done here: #1073, but actually I will use this opportunity to polish a bit the check. So I will reopen and integrate some changes here, in particular I will add tests.

@LucaMarconato LucaMarconato reopened this Feb 16, 2026
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates TableModel’s instance_key dtype validation to support modern pandas string types, addressing #1062 and reducing the need for deprecated object dtypes.

Changes:

  • Accept pd.StringDtype for instance_key columns.
  • Accept pd.CategoricalDtype when categories are integer- or string-like.
  • Add parametrized tests covering accepted/rejected instance_key dtypes (string, categorical, int, float, object).

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
src/spatialdata/models/models.py Expands instance_key dtype validation logic and updates the error message for clarity.
tests/models/test_models.py Adds coverage for instance_key dtype validation across pandas string/categorical/integer cases.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

LucaMarconato and others added 4 commits February 16, 2026 18:04
@LucaMarconato LucaMarconato merged commit cd8546a into scverse:main Feb 17, 2026
9 checks passed
@jlr13 jlr13 deleted the fix-stringdtype-validation branch February 17, 2026 12:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants

Comments